home *** CD-ROM | disk | FTP | other *** search
/ Gigarom 4 / Mac Giga-ROM 4.0 - 1993.toast / FILES / COM / Q-Z / Terminal 2.2.sit / Terminal 2.2 / Project / Sources / Document.c < prev    next >
MacBinary  |  1992-01-17  |  10.1 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Fri Jan 17 12:00:00 1992, modified Fri Jan 17 12:00:00 1992, creator Think C, type ASCII, 9560 bytes "Document.c" , at 0x25d8 582 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 44 6f 63 75 6d 65 | 6e 74 2e 63 00 00 00 00 |..Docume|nt.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 25 58 00 | 00 02 46 a5 9c bc 10 a5 |.....%X.|..F.....|
|00000060| 9c bc 10 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 63 9a 00 00 |........|....c...|
|00000080| 2f 2a 0d 09 54 65 72 6d | 69 6e 61 6c 20 32 2e 32 |/*..Term|inal 2.2|
|00000090| 0d 09 22 44 6f 63 75 6d | 65 6e 74 2e 63 22 0d 2a |.."Docum|ent.c".*|
|000000a0| 2f 0d 0d 23 69 66 64 65 | 66 20 54 48 49 4e 4b 5f |/..#ifde|f THINK_|
|000000b0| 43 0d 23 69 6e 63 6c 75 | 64 65 20 22 4d 61 63 48 |C.#inclu|de "MacH|
|000000c0| 65 61 64 65 72 73 22 0d | 23 65 6e 64 69 66 0d 23 |eaders".|#endif.#|
|000000d0| 69 66 64 65 66 20 61 70 | 70 6c 65 63 0d 23 70 72 |ifdef ap|plec.#pr|
|000000e0| 61 67 6d 61 20 6c 6f 61 | 64 20 22 3a 28 4f 62 6a |agma loa|d ":(Obj|
|000000f0| 65 63 74 73 29 3a 4d 61 | 63 48 65 61 64 65 72 73 |ects):Ma|cHeaders|
|00000100| 4d 50 57 22 0d 23 70 72 | 61 67 6d 61 20 73 65 67 |MPW".#pr|agma seg|
|00000110| 6d 65 6e 74 20 4d 61 69 | 6e 32 0d 23 65 6e 64 69 |ment Mai|n2.#endi|
|00000120| 66 0d 0d 23 69 6e 63 6c | 75 64 65 20 22 54 65 78 |f..#incl|ude "Tex|
|00000130| 74 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 4d |t.h".#in|clude "M|
|00000140| 61 69 6e 2e 68 22 0d 23 | 69 6e 63 6c 75 64 65 20 |ain.h".#|include |
|00000150| 22 44 6f 63 75 6d 65 6e | 74 2e 68 22 0d 23 69 6e |"Documen|t.h".#in|
|00000160| 63 6c 75 64 65 20 22 53 | 63 72 6f 6c 6c 2e 68 22 |clude "S|croll.h"|
|00000170| 0d 23 69 6e 63 6c 75 64 | 65 20 22 46 69 6c 65 2e |.#includ|e "File.|
|00000180| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 50 6f 72 |h".#incl|ude "Por|
|00000190| 74 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 43 |t.h".#in|clude "C|
|000001a0| 69 73 42 2e 68 22 0d 23 | 69 6e 63 6c 75 64 65 20 |isB.h".#|include |
|000001b0| 22 5a 4d 6f 64 65 6d 2e | 68 22 0d 0d 23 64 65 66 |"ZModem.|h"..#def|
|000001c0| 69 6e 65 20 42 53 09 09 | 30 78 30 38 09 2f 2a 20 |ine BS..|0x08./* |
|000001d0| 42 61 63 6b 73 70 61 63 | 65 20 6b 65 79 20 2a 2f |Backspac|e key */|
|000001e0| 0d 23 64 65 66 69 6e 65 | 20 45 53 43 09 09 27 60 |.#define| ESC..'`|
|000001f0| 27 09 09 2f 2a 20 55 73 | 65 64 20 61 73 20 65 73 |'../* Us|ed as es|
|00000200| 63 61 70 65 20 6b 65 79 | 20 2a 2f 0d 0d 2f 2a 20 |cape key| */../* |
|00000210| 2d 2d 2d 2d 2d 20 44 72 | 61 77 20 63 75 72 73 6f |----- Dr|aw curso|
|00000220| 72 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |r ------|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000250| 2d 2d 2d 2d 2d 20 2a 2f | 0d 0d 73 74 61 74 69 63 |----- */|..static|
|00000260| 20 76 6f 69 64 20 44 72 | 61 77 43 75 72 73 6f 72 | void Dr|awCursor|
|00000270| 28 72 65 67 69 73 74 65 | 72 20 50 6f 69 6e 74 20 |(registe|r Point |
|00000280| 77 68 65 72 65 2c 20 52 | 65 63 74 20 66 72 61 6d |where, R|ect fram|
|00000290| 65 29 0d 7b 0d 09 4f 66 | 66 73 65 74 52 65 63 74 |e).{..Of|fsetRect|
|000002a0| 28 26 66 72 61 6d 65 2c | 20 77 68 65 72 65 2e 68 |(&frame,| where.h|
|000002b0| 2c 20 77 68 65 72 65 2e | 76 29 3b 0d 09 50 61 69 |, where.|v);..Pai|
|000002c0| 6e 74 52 65 63 74 28 26 | 66 72 61 6d 65 29 3b 0d |ntRect(&|frame);.|
|000002d0| 7d 0d 0d 2f 2a 20 2d 2d | 2d 2d 2d 20 45 72 61 73 |}../* --|--- Eras|
|000002e0| 65 20 63 68 61 72 61 63 | 74 65 72 20 2d 2d 2d 2d |e charac|ter ----|
|000002f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 20 2a 2f 0d 0d |--------|--- */..|
|00000320| 73 74 61 74 69 63 20 76 | 6f 69 64 20 45 72 61 73 |static v|oid Eras|
|00000330| 65 43 68 61 72 61 63 74 | 65 72 28 72 65 67 69 73 |eCharact|er(regis|
|00000340| 74 65 72 20 50 6f 69 6e | 74 20 77 68 65 72 65 2c |ter Poin|t where,|
|00000350| 20 52 65 63 74 20 66 72 | 61 6d 65 29 0d 7b 0d 09 | Rect fr|ame).{..|
|00000360| 4f 66 66 73 65 74 52 65 | 63 74 28 26 66 72 61 6d |OffsetRe|ct(&fram|
|00000370| 65 2c 20 77 68 65 72 65 | 2e 68 2c 20 77 68 65 72 |e, where|.h, wher|
|00000380| 65 2e 76 29 3b 0d 09 45 | 72 61 73 65 52 65 63 74 |e.v);..E|raseRect|
|00000390| 28 26 66 72 61 6d 65 29 | 3b 0d 7d 0d 0d 2f 2a 20 |(&frame)|;.}../* |
|000003a0| 2d 2d 2d 2d 2d 20 43 68 | 65 63 6b 20 74 6f 20 73 |----- Ch|eck to s|
|000003b0| 65 65 20 69 66 20 64 69 | 73 70 6c 61 79 20 77 69 |ee if di|splay wi|
|000003c0| 6e 64 6f 77 20 69 73 20 | 65 6e 74 69 72 65 6c 79 |ndow is |entirely|
|000003d0| 20 76 69 73 69 62 6c 65 | 20 2d 2d 2d 2d 2d 2d 2d | visible| -------|
|000003e0| 2d 2d 2d 2d 2d 20 2a 2f | 0d 0d 73 74 61 74 69 63 |----- */|..static|
|000003f0| 20 42 6f 6f 6c 65 61 6e | 20 56 69 73 69 62 6c 65 | Boolean| Visible|
|00000400| 28 72 65 67 69 73 74 65 | 72 20 44 6f 63 75 6d 65 |(registe|r Docume|
|00000410| 6e 74 50 65 65 6b 20 77 | 69 6e 64 6f 77 29 0d 7b |ntPeek w|indow).{|
|00000420| 0d 09 72 65 67 69 73 74 | 65 72 20 52 67 6e 48 61 |..regist|er RgnHa|
|00000430| 6e 64 6c 65 20 72 67 6e | 31 20 3d 20 4e 65 77 52 |ndle rgn|1 = NewR|
|00000440| 67 6e 28 29 2c 20 72 67 | 6e 32 20 3d 20 4e 65 77 |gn(), rg|n2 = New|
|00000450| 52 67 6e 28 29 3b 0d 09 | 72 65 67 69 73 74 65 72 |Rgn();..|register|
|00000460| 20 42 6f 6f 6c 65 61 6e | 20 76 3b 0d 0d 09 52 65 | Boolean| v;...Re|
|00000470| 63 74 52 67 6e 28 72 67 | 6e 31 2c 20 26 77 69 6e |ctRgn(rg|n1, &win|
|00000480| 64 6f 77 2d 3e 72 65 63 | 74 29 3b 0d 09 53 65 63 |dow->rec|t);..Sec|
|00000490| 74 52 67 6e 28 72 67 6e | 31 2c 20 28 28 57 69 6e |tRgn(rgn|1, ((Win|
|000004a0| 64 6f 77 50 74 72 29 77 | 69 6e 64 6f 77 29 2d 3e |dowPtr)w|indow)->|
|000004b0| 76 69 73 52 67 6e 2c 20 | 72 67 6e 32 29 3b 0d 09 |visRgn, |rgn2);..|
|000004c0| 76 20 3d 20 45 71 75 61 | 6c 52 67 6e 28 72 67 6e |v = Equa|lRgn(rgn|
|000004d0| 31 2c 20 72 67 6e 32 29 | 3b 0d 09 44 69 73 70 6f |1, rgn2)|;..Dispo|
|000004e0| 73 65 52 67 6e 28 72 67 | 6e 32 29 3b 0d 09 44 69 |seRgn(rg|n2);..Di|
|000004f0| 73 70 6f 73 65 52 67 6e | 28 72 67 6e 31 29 3b 0d |sposeRgn|(rgn1);.|
|00000500| 09 72 65 74 75 72 6e 20 | 76 3b 0d 7d 0d 0d 2f 2a |.return |v;.}../*|
|00000510| 20 2d 2d 2d 2d 2d 20 44 | 72 61 77 20 6d 65 73 73 | ----- D|raw mess|
|00000520| 61 67 65 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |age ----|--------|
|00000530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000550| 2d 2d 2d 2d 2d 2d 20 2a | 2f 0d 0d 73 74 61 74 69 |------ *|/..stati|
|00000560| 63 20 76 6f 69 64 20 44 | 72 61 77 4d 65 73 73 61 |c void D|rawMessa|
|00000570| 67 65 28 72 65 67 69 73 | 74 65 72 20 44 6f 63 75 |ge(regis|ter Docu|
|00000580| 6d 65 6e 74 50 65 65 6b | 20 77 69 6e 64 6f 77 29 |mentPeek| window)|
|00000590| 0d 7b 0d 09 45 72 61 73 | 65 52 65 63 74 28 26 77 |.{..Eras|eRect(&w|
|000005a0| 69 6e 64 6f 77 2d 3e 6d | 65 73 73 52 65 63 74 29 |indow->m|essRect)|
|000005b0| 3b 0d 09 69 66 20 28 77 | 69 6e 64 6f 77 2d 3e 6d |;..if (w|indow->m|
|000005c0| 65 73 73 5b 30 5d 29 20 | 7b 0d 09 09 4d 6f 76 65 |ess[0]) |{...Move|
|000005d0| 54 6f 28 77 69 6e 64 6f | 77 2d 3e 6d 65 73 73 52 |To(windo|w->messR|
|000005e0| 65 63 74 2e 6c 65 66 74 | 20 2b 20 33 2c 20 77 69 |ect.left| + 3, wi|
|000005f0| 6e 64 6f 77 2d 3e 6d 65 | 73 73 52 65 63 74 2e 74 |ndow->me|ssRect.t|
|00000600| 6f 70 20 2b 20 31 33 29 | 3b 0d 09 09 44 72 61 77 |op + 13)|;...Draw|
|00000610| 53 74 72 69 6e 67 28 77 | 69 6e 64 6f 77 2d 3e 6d |String(w|indow->m|
|00000620| 65 73 73 29 3b 0d 09 09 | 46 72 61 6d 65 52 65 63 |ess);...|FrameRec|
|00000630| 74 28 26 77 69 6e 64 6f | 77 2d 3e 6d 65 73 73 52 |t(&windo|w->messR|
|00000640| 65 63 74 29 3b 0d 09 7d | 0d 7d 0d 0d 2f 2a 20 2d |ect);..}|.}../* -|
|00000650| 2d 2d 2d 2d 20 4d 61 6b | 65 20 6e 65 77 20 6d 65 |---- Mak|e new me|
|00000660| 73 73 61 67 65 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ssage --|--------|
|00000670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000690| 2d 2d 2d 2d 20 2a 2f 0d | 0d 76 6f 69 64 20 4d 61 |---- */.|.void Ma|
|000006a0| 6b 65 4d 65 73 73 61 67 | 65 28 0d 09 72 65 67 69 |keMessag|e(..regi|
|000006b0| 73 74 65 72 20 44 6f 63 | 75 6d 65 6e 74 50 65 65 |ster Doc|umentPee|
|000006c0| 6b 20 77 69 6e 64 6f 77 | 2c 0d 09 72 65 67 69 73 |k window|,..regis|
|000006d0| 74 65 72 20 42 79 74 65 | 20 2a 6d 65 73 73 61 67 |ter Byte| *messag|
|000006e0| 65 29 0d 7b 0d 09 53 65 | 74 50 6f 72 74 28 28 47 |e).{..Se|tPort((G|
|000006f0| 72 61 66 50 74 72 29 77 | 69 6e 64 6f 77 29 3b 0d |rafPtr)w|indow);.|
|00000700| 09 6d 65 6d 63 70 79 28 | 77 69 6e 64 6f 77 2d 3e |.memcpy(|window->|
|00000710| 6d 65 73 73 2c 20 6d 65 | 73 73 61 67 65 2c 20 6d |mess, me|ssage, m|
|00000720| 65 73 73 61 67 65 5b 30 | 5d 20 2b 20 31 29 3b 0d |essage[0|] + 1);.|
|00000730| 09 53 68 6f 77 43 6f 6e | 74 72 6f 6c 28 77 69 6e |.ShowCon|trol(win|
|00000740| 64 6f 77 2d 3e 6d 65 73 | 73 4f 6b 29 3b 0d 09 44 |dow->mes|sOk);..D|
|00000750| 72 61 77 4d 65 73 73 61 | 67 65 28 77 69 6e 64 6f |rawMessa|ge(windo|
|00000760| 77 29 3b 0d 7d 0d 0d 2f | 2a 20 2d 2d 2d 2d 2d 20 |w);.}../|* ----- |
|00000770| 44 72 61 77 20 64 6f 63 | 75 6d 65 6e 74 20 77 69 |Draw doc|ument wi|
|00000780| 6e 64 6f 77 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ndow ---|--------|
|00000790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 |--------|------- |
|000007b0| 2a 2f 0d 0d 76 6f 69 64 | 20 44 72 61 77 44 6f 63 |*/..void| DrawDoc|
|000007c0| 75 6d 65 6e 74 28 0d 09 | 72 65 67 69 73 74 65 72 |ument(..|register|
|000007d0| 20 44 6f 63 75 6d 65 6e | 74 50 65 65 6b 20 77 69 | Documen|tPeek wi|
|000007e0| 6e 64 6f 77 2c 0d 09 73 | 68 6f 72 74 20 64 65 6c |ndow,..s|hort del|
|000007f0| 74 61 29 09 09 09 09 09 | 2f 2a 20 4e 75 6d 62 65 |ta).....|/* Numbe|
|00000800| 72 20 6f 66 20 6c 69 6e | 65 73 20 74 6f 20 73 63 |r of lin|es to sc|
|00000810| 72 6f 6c 6c 20 2a 2f 0d | 7b 0d 09 72 65 67 69 73 |roll */.|{..regis|
|00000820| 74 65 72 20 6c 6f 6e 67 | 20 6c 69 6e 65 31 2c 20 |ter long| line1, |
|00000830| 6c 69 6e 65 32 2c 20 6e | 3b 0d 09 72 65 67 69 73 |line2, n|;..regis|
|00000840| 74 65 72 20 73 68 6f 72 | 74 20 76 3b 0d 09 42 79 |ter shor|t v;..By|
|00000850| 74 65 20 73 5b 32 35 36 | 5d 3b 0d 09 42 6f 6f 6c |te s[256|];..Bool|
|00000860| 65 61 6e 20 6c 61 73 74 | 4c 69 6e 65 3b 0d 0d 09 |ean last|Line;...|
|00000870| 53 65 74 50 6f 72 74 28 | 28 47 72 61 66 50 74 72 |SetPort(|(GrafPtr|
|00000880| 29 77 69 6e 64 6f 77 29 | 3b 0d 0d 09 6e 20 3d 20 |)window)|;...n = |
|00000890| 47 65 74 43 74 6c 56 61 | 6c 75 65 28 77 69 6e 64 |GetCtlVa|lue(wind|
|000008a0| 6f 77 2d 3e 76 73 29 3b | 09 09 09 2f 2a 20 46 69 |ow->vs);|.../* Fi|
|000008b0| 72 73 74 20 76 69 73 69 | 62 6c 65 20 6c 69 6e 65 |rst visi|ble line|
|000008c0| 20 2a 2f 0d 09 69 66 20 | 28 64 65 6c 74 61 20 3e | */..if |(delta >|
|000008d0| 20 30 29 20 7b 09 09 09 | 09 09 09 2f 2a 20 53 63 | 0) {...|.../* Sc|
|000008e0| 72 6f 6c 6c 20 62 61 63 | 6b 20 2a 2f 0d 09 09 6c |roll bac|k */...l|
|000008f0| 69 6e 65 31 20 3d 20 6e | 3b 09 09 09 09 09 09 09 |ine1 = n|;.......|
|00000900| 2f 2a 20 46 69 72 73 74 | 20 6c 69 6e 65 73 20 69 |/* First| lines i|
|00000910| 6e 20 77 69 6e 64 6f 77 | 20 2a 2f 0d 09 09 6c 69 |n window| */...li|
|00000920| 6e 65 32 20 3d 20 6c 69 | 6e 65 31 20 2b 20 4d 69 |ne2 = li|ne1 + Mi|
|00000930| 6e 28 64 65 6c 74 61 2c | 20 77 69 6e 64 6f 77 2d |n(delta,| window-|
|00000940| 3e 6c 69 6e 65 73 50 61 | 67 65 29 3b 0d 09 7d 20 |>linesPa|ge);..} |
|00000950| 65 6c 73 65 20 7b 0d 09 | 09 69 66 20 28 64 65 6c |else {..|.if (del|
|00000960| 74 61 20 3c 20 30 29 20 | 7b 09 09 09 09 09 2f 2a |ta < 0) |{...../*|
|00000970| 20 53 63 72 6f 6c 6c 20 | 66 6f 72 77 61 72 64 20 | Scroll |forward |
|00000980| 2a 2f 0d 09 09 09 6c 69 | 6e 65 32 20 3d 20 6e 20 |*/....li|ne2 = n |
|00000990| 2b 20 77 69 6e 64 6f 77 | 2d 3e 6c 69 6e 65 73 50 |+ window|->linesP|
|000009a0| 61 67 65 3b 09 2f 2a 20 | 4c 61 73 74 20 6c 69 6e |age;./* |Last lin|
|000009b0| 65 73 20 69 6e 20 77 69 | 6e 64 6f 77 20 2a 2f 0d |es in wi|ndow */.|
|000009c0| 09 09 09 6c 69 6e 65 31 | 20 3d 20 6c 69 6e 65 32 |...line1| = line2|
|000009d0| 20 2d 20 4d 69 6e 28 2d | 64 65 6c 74 61 2c 20 77 | - Min(-|delta, w|
|000009e0| 69 6e 64 6f 77 2d 3e 6c | 69 6e 65 73 50 61 67 65 |indow->l|inesPage|
|000009f0| 29 3b 0d 09 09 7d 20 65 | 6c 73 65 20 7b 09 09 09 |);...} e|lse {...|
|00000a00| 09 09 09 09 2f 2a 20 44 | 72 61 77 20 61 6c 6c 20 |..../* D|raw all |
|00000a10| 6c 69 6e 65 73 20 69 6e | 20 77 69 6e 64 6f 77 20 |lines in| window |
|00000a20| 2a 2f 0d 09 09 09 4d 6f | 76 65 54 6f 28 77 69 6e |*/....Mo|veTo(win|
|00000a30| 64 6f 77 2d 3e 72 65 63 | 74 2e 6c 65 66 74 20 2d |dow->rec|t.left -|
|00000a40| 20 32 2c 20 77 69 6e 64 | 6f 77 2d 3e 72 65 63 74 | 2, wind|ow->rect|
|00000a50| 2e 74 6f 70 20 2d 20 33 | 29 3b 0d 09 09 09 4c 69 |.top - 3|);....Li|
|00000a60| 6e 65 54 6f 28 77 69 6e | 64 6f 77 2d 3e 72 65 63 |neTo(win|dow->rec|
|00000a70| 74 2e 72 69 67 68 74 20 | 2b 20 31 2c 20 77 69 6e |t.right |+ 1, win|
|00000a80| 64 6f 77 2d 3e 72 65 63 | 74 2e 74 6f 70 20 2d 20 |dow->rec|t.top - |
|00000a90| 33 29 3b 0d 09 09 09 44 | 72 61 77 4d 65 73 73 61 |3);....D|rawMessa|
|00000aa0| 67 65 28 77 69 6e 64 6f | 77 29 3b 0d 09 09 09 6c |ge(windo|w);....l|
|00000ab0| 69 6e 65 31 20 3d 20 6e | 3b 0d 09 09 09 6c 69 6e |ine1 = n|;....lin|
|00000ac0| 65 32 20 3d 20 6c 69 6e | 65 31 20 2b 20 77 69 6e |e2 = lin|e1 + win|
|00000ad0| 64 6f 77 2d 3e 6c 69 6e | 65 73 50 61 67 65 3b 0d |dow->lin|esPage;.|
|00000ae0| 09 09 7d 0d 09 7d 0d 09 | 4d 6f 76 65 54 6f 28 77 |..}..}..|MoveTo(w|
|00000af0| 69 6e 64 6f 77 2d 3e 63 | 75 72 73 6f 72 30 2e 68 |indow->c|ursor0.h|
|00000b00| 2c 0d 09 09 76 20 3d 20 | 77 69 6e 64 6f 77 2d 3e |,...v = |window->|
|00000b10| 63 75 72 73 6f 72 30 2e | 76 20 2b 20 28 6c 69 6e |cursor0.|v + (lin|
|00000b20| 65 31 20 2d 20 6e 29 20 | 2a 20 77 69 6e 64 6f 77 |e1 - n) |* window|
|00000b30| 2d 3e 68 65 69 67 68 74 | 29 3b 0d 09 54 65 78 74 |->height|);..Text|
|00000b40| 4d 6f 64 65 28 73 72 63 | 4f 72 29 3b 0d 09 77 68 |Mode(src|Or);..wh|
|00000b50| 69 6c 65 20 28 6c 69 6e | 65 31 20 3c 20 6c 69 6e |ile (lin|e1 < lin|
|00000b60| 65 32 29 20 7b 0d 09 09 | 6c 61 73 74 4c 69 6e 65 |e2) {...|lastLine|
|00000b70| 20 3d 20 46 69 6e 64 4c | 69 6e 65 28 26 77 69 6e | = FindL|ine(&win|
|00000b80| 64 6f 77 2d 3e 62 75 66 | 2c 20 6c 69 6e 65 31 2c |dow->buf|, line1,|
|00000b90| 20 73 29 3b 0d 09 09 44 | 72 61 77 53 74 72 69 6e | s);...D|rawStrin|
|00000ba0| 67 28 73 29 3b 0d 09 09 | 69 66 20 28 6c 61 73 74 |g(s);...|if (last|
|00000bb0| 4c 69 6e 65 29 20 7b 0d | 09 09 09 44 72 61 77 43 |Line) {.|...DrawC|
|00000bc0| 75 72 73 6f 72 28 77 69 | 6e 64 6f 77 2d 3e 63 75 |ursor(wi|ndow->cu|
|00000bd0| 72 73 6f 72 2c 20 77 69 | 6e 64 6f 77 2d 3e 63 68 |rsor, wi|ndow->ch|
|00000be0| 61 72 61 63 74 65 72 29 | 3b 0d 09 09 09 62 72 65 |aracter)|;....bre|
|00000bf0| 61 6b 3b 0d 09 09 7d 0d | 09 09 4d 6f 76 65 54 6f |ak;...}.|..MoveTo|
|00000c00| 28 77 69 6e 64 6f 77 2d | 3e 63 75 72 73 6f 72 30 |(window-|>cursor0|
|00000c10| 2e 68 2c 20 76 20 2b 3d | 20 77 69 6e 64 6f 77 2d |.h, v +=| window-|
|00000c20| 3e 68 65 69 67 68 74 29 | 3b 0d 09 09 2b 2b 6c 69 |>height)|;...++li|
|00000c30| 6e 65 31 3b 0d 09 7d 0d | 7d 0d 0d 2f 2a 20 2d 2d |ne1;..}.|}../* --|
|00000c40| 2d 2d 2d 20 44 72 61 77 | 20 64 6f 63 75 6d 65 6e |--- Draw| documen|
|00000c50| 74 20 77 69 6e 64 6f 77 | 20 61 66 74 65 72 20 6e |t window| after n|
|00000c60| 65 77 20 6c 69 6e 65 20 | 72 65 63 65 69 76 65 64 |ew line |received|
|00000c70| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00000c80| 2d 2d 2d 20 2a 2f 0d 0d | 73 74 61 74 69 63 20 76 |--- */..|static v|
|00000c90| 6f 69 64 20 44 72 61 77 | 44 6f 63 75 6d 65 6e 74 |oid Draw|Document|
|00000ca0| 58 28 72 65 67 69 73 74 | 65 72 20 44 6f 63 75 6d |X(regist|er Docum|
|00000cb0| 65 6e 74 50 65 65 6b 20 | 77 69 6e 64 6f 77 29 0d |entPeek |window).|
|00000cc0| 7b 0d 09 72 65 67 69 73 | 74 65 72 20 6c 6f 6e 67 |{..regis|ter long|
|00000cd0| 20 6c 69 6e 65 31 2c 20 | 6c 69 6e 65 32 3b 0d 09 | line1, |line2;..|
|00000ce0| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 76 |register| short v|
|00000cf0| 3b 0d 09 72 65 67 69 73 | 74 65 72 20 42 6f 6f 6c |;..regis|ter Bool|
|00000d00| 65 61 6e 20 6c 61 73 74 | 4c 69 6e 65 3b 0d 09 72 |ean last|Line;..r|
|00000d10| 65 67 69 73 74 65 72 20 | 42 79 74 65 20 73 5b 32 |egister |Byte s[2|
|00000d20| 35 36 5d 3b 0d 09 52 65 | 63 74 20 72 3b 0d 0d 09 |56];..Re|ct r;...|
|00000d30| 6c 69 6e 65 32 20 3d 20 | 28 6c 69 6e 65 31 20 3d |line2 = |(line1 =|
|00000d40| 20 47 65 74 43 74 6c 56 | 61 6c 75 65 28 77 69 6e | GetCtlV|alue(win|
|00000d50| 64 6f 77 2d 3e 76 73 29 | 29 20 2b 20 77 69 6e 64 |dow->vs)|) + wind|
|00000d60| 6f 77 2d 3e 6c 69 6e 65 | 73 50 61 67 65 3b 0d 09 |ow->line|sPage;..|
|00000d70| 4d 6f 76 65 54 6f 28 72 | 2e 6c 65 66 74 20 3d 20 |MoveTo(r|.left = |
|00000d80| 77 69 6e 64 6f 77 2d 3e | 63 75 72 73 6f 72 30 2e |window->|cursor0.|
|00000d90| 68 2c 20 76 20 3d 20 77 | 69 6e 64 6f 77 2d 3e 63 |h, v = w|indow->c|
|00000da0| 75 72 73 6f 72 30 2e 76 | 29 3b 0d 09 54 65 78 74 |ursor0.v|);..Text|
|00000db0| 4d 6f 64 65 28 73 72 63 | 4f 72 29 3b 0d 09 72 2e |Mode(src|Or);..r.|
|00000dc0| 72 69 67 68 74 20 3d 20 | 72 2e 6c 65 66 74 20 2b |right = |r.left +|
|00000dd0| 20 28 77 69 6e 64 6f 77 | 2d 3e 72 65 63 74 2e 72 | (window|->rect.r|
|00000de0| 69 67 68 74 20 2d 20 77 | 69 6e 64 6f 77 2d 3e 72 |ight - w|indow->r|
|00000df0| 65 63 74 2e 6c 65 66 74 | 29 3b 0d 09 72 2e 74 6f |ect.left|);..r.to|
|00000e00| 70 20 3d 20 77 69 6e 64 | 6f 77 2d 3e 63 68 61 72 |p = wind|ow->char|
|00000e10| 61 63 74 65 72 2e 74 6f | 70 3b 0d 09 72 2e 62 6f |acter.to|p;..r.bo|
|00000e20| 74 74 6f 6d 20 3d 20 77 | 69 6e 64 6f 77 2d 3e 63 |ttom = w|indow->c|
|00000e30| 68 61 72 61 63 74 65 72 | 2e 62 6f 74 74 6f 6d 3b |haracter|.bottom;|
|00000e40| 0d 09 4f 66 66 73 65 74 | 52 65 63 74 28 26 72 2c |..Offset|Rect(&r,|
|00000e50| 20 30 2c 20 76 29 3b 0d | 09 77 68 69 6c 65 20 28 | 0, v);.|.while (|
|00000e60| 6c 69 6e 65 31 20 3c 20 | 6c 69 6e 65 32 29 20 7b |line1 < |line2) {|
|00000e70| 0d 09 09 45 72 61 73 65 | 52 65 63 74 28 26 72 29 |...Erase|Rect(&r)|
|00000e80| 3b 0d 09 09 72 2e 74 6f | 70 20 2b 3d 20 77 69 6e |;...r.to|p += win|
|00000e90| 64 6f 77 2d 3e 68 65 69 | 67 68 74 3b 0d 09 09 72 |dow->hei|ght;...r|
|00000ea0| 2e 62 6f 74 74 6f 6d 20 | 2b 3d 20 77 69 6e 64 6f |.bottom |+= windo|
|00000eb0| 77 2d 3e 68 65 69 67 68 | 74 3b 0d 09 09 6c 61 73 |w->heigh|t;...las|
|00000ec0| 74 4c 69 6e 65 20 3d 20 | 46 69 6e 64 4c 69 6e 65 |tLine = |FindLine|
|00000ed0| 28 26 77 69 6e 64 6f 77 | 2d 3e 62 75 66 2c 20 6c |(&window|->buf, l|
|00000ee0| 69 6e 65 31 2c 20 73 29 | 3b 0d 09 09 44 72 61 77 |ine1, s)|;...Draw|
|00000ef0| 53 74 72 69 6e 67 28 73 | 29 3b 0d 09 09 69 66 20 |String(s|);...if |
|00000f00| 28 6c 61 73 74 4c 69 6e | 65 29 0d 09 09 09 62 72 |(lastLin|e)....br|
|00000f10| 65 61 6b 3b 0d 09 09 4d | 6f 76 65 54 6f 28 77 69 |eak;...M|oveTo(wi|
|00000f20| 6e 64 6f 77 2d 3e 63 75 | 72 73 6f 72 30 2e 68 2c |ndow->cu|rsor0.h,|
|00000f30| 20 76 20 2b 3d 20 77 69 | 6e 64 6f 77 2d 3e 68 65 | v += wi|ndow->he|
|00000f40| 69 67 68 74 29 3b 0d 09 | 09 2b 2b 6c 69 6e 65 31 |ight);..|.++line1|
|00000f50| 3b 0d 09 7d 0d 7d 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |;..}.}..|/* -----|
|00000f60| 20 43 6c 65 61 72 20 63 | 61 70 74 75 72 65 20 62 | Clear c|apture b|
|00000f70| 75 66 66 65 72 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |uffer --|--------|
|00000f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fa0| 20 2a 2f 0d 0d 76 6f 69 | 64 20 43 6c 65 61 72 42 | */..voi|d ClearB|
|00000fb0| 75 66 66 65 72 28 76 6f | 69 64 29 0d 7b 0d 09 72 |uffer(vo|id).{..r|
|00000fc0| 65 67 69 73 74 65 72 20 | 44 6f 63 75 6d 65 6e 74 |egister |Document|
|00000fd0| 50 65 65 6b 20 77 69 6e | 64 6f 77 20 3d 20 54 65 |Peek win|dow = Te|
|00000fe0| 72 6d 69 6e 61 6c 57 69 | 6e 64 6f 77 3b 0d 09 72 |rminalWi|ndow;..r|
|00000ff0| 65 67 69 73 74 65 72 20 | 54 65 78 74 52 65 63 6f |egister |TextReco|
|00001000| 72 64 20 2a 70 3b 0d 0d | 09 69 66 20 28 77 69 6e |rd *p;..|.if (win|
|00001010| 64 6f 77 2d 3e 66 69 6c | 65 29 0d 09 09 53 79 73 |dow->fil|e)...Sys|
|00001020| 42 65 65 70 28 31 29 3b | 09 09 2f 2a 20 4e 6f 74 |Beep(1);|../* Not|
|00001030| 20 77 68 69 6c 65 20 63 | 61 70 74 75 72 65 20 66 | while c|apture f|
|00001040| 69 6c 65 20 69 73 20 6f | 70 65 6e 21 20 2a 2f 0d |ile is o|pen! */.|
|00001050| 09 65 6c 73 65 20 7b 0d | 09 09 70 20 3d 20 26 77 |.else {.|..p = &w|
|00001060| 69 6e 64 6f 77 2d 3e 62 | 75 66 3b 0d 09 09 70 2d |indow->b|uf;...p-|
|00001070| 3e 6c 69 6e 65 73 20 3d | 20 31 3b 0d 09 09 70 2d |>lines =| 1;...p-|
|00001080| 3e 66 69 72 73 74 43 68 | 61 72 20 3d 20 70 2d 3e |>firstCh|ar = p->|
|00001090| 6e 65 77 43 68 61 72 20 | 3d 20 70 2d 3e 6c 65 6e |newChar |= p->len|
|000010a0| 67 74 68 20 3d 0d 09 09 | 09 70 2d 3e 76 69 65 77 |gth =...|.p->view|
|000010b0| 43 68 61 72 20 3d 20 70 | 2d 3e 76 69 65 77 4c 69 |Char = p|->viewLi|
|000010c0| 6e 65 20 3d 20 30 3b 0d | 09 09 28 70 2d 3e 74 65 |ne = 0;.|..(p->te|
|000010d0| 78 74 29 5b 30 5d 20 3d | 20 27 5c 30 31 35 27 3b |xt)[0] =| '\015';|
|000010e0| 0d 09 09 77 69 6e 64 6f | 77 2d 3e 63 75 72 73 6f |...windo|w->curso|
|000010f0| 72 20 3d 20 77 69 6e 64 | 6f 77 2d 3e 63 75 72 73 |r = wind|ow->curs|
|00001100| 6f 72 30 3b 0d 09 09 53 | 65 74 43 74 6c 56 61 6c |or0;...S|etCtlVal|
|00001110| 75 65 28 77 69 6e 64 6f | 77 2d 3e 76 73 2c 20 30 |ue(windo|w->vs, 0|
|00001120| 29 3b 0d 09 09 41 64 6a | 75 73 74 53 63 72 6f 6c |);...Adj|ustScrol|
|00001130| 6c 42 61 72 28 77 69 6e | 64 6f 77 29 3b 0d 09 09 |lBar(win|dow);...|
|00001140| 53 65 74 50 6f 72 74 28 | 28 47 72 61 66 50 74 72 |SetPort(|(GrafPtr|
|00001150| 29 77 69 6e 64 6f 77 29 | 3b 0d 09 09 45 72 61 73 |)window)|;...Eras|
|00001160| 65 52 65 63 74 28 26 77 | 69 6e 64 6f 77 2d 3e 72 |eRect(&w|indow->r|
|00001170| 65 63 74 29 3b 0d 09 09 | 44 72 61 77 44 6f 63 75 |ect);...|DrawDocu|
|00001180| 6d 65 6e 74 28 77 69 6e | 64 6f 77 2c 20 30 29 3b |ment(win|dow, 0);|
|00001190| 0d 09 7d 0d 7d 0d 0d 2f | 2a 20 2d 2d 2d 2d 2d 20 |..}.}../|* ----- |
|000011a0| 52 65 64 72 61 77 20 64 | 6f 63 75 6d 65 6e 74 20 |Redraw d|ocument |
|000011b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 |--------|------- |
|000011e0| 2a 2f 0d 0d 76 6f 69 64 | 20 52 65 64 72 61 77 44 |*/..void| RedrawD|
|000011f0| 6f 63 75 6d 65 6e 74 28 | 76 6f 69 64 29 0d 7b 0d |ocument(|void).{.|
|00001200| 09 72 65 67 69 73 74 65 | 72 20 44 6f 63 75 6d 65 |.registe|r Docume|
|00001210| 6e 74 50 65 65 6b 20 77 | 69 6e 64 6f 77 20 3d 20 |ntPeek w|indow = |
|00001220| 54 65 72 6d 69 6e 61 6c | 57 69 6e 64 6f 77 3b 0d |Terminal|Window;.|
|00001230| 0d 09 42 65 67 69 6e 55 | 70 64 61 74 65 28 28 57 |..BeginU|pdate((W|
|00001240| 69 6e 64 6f 77 50 74 72 | 29 77 69 6e 64 6f 77 29 |indowPtr|)window)|
|00001250| 3b 0d 09 44 72 61 77 44 | 6f 63 75 6d 65 6e 74 28 |;..DrawD|ocument(|
|00001260| 77 69 6e 64 6f 77 2c 20 | 30 29 3b 0d 09 44 72 61 |window, |0);..Dra|
|00001270| 77 43 6f 6e 74 72 6f 6c | 73 28 28 57 69 6e 64 6f |wControl|s((Windo|
|00001280| 77 50 74 72 29 77 69 6e | 64 6f 77 29 3b 0d 09 45 |wPtr)win|dow);..E|
|00001290| 6e 64 55 70 64 61 74 65 | 28 28 57 69 6e 64 6f 77 |ndUpdate|((Window|
|000012a0| 50 74 72 29 77 69 6e 64 | 6f 77 29 3b 0d 7d 0d 0d |Ptr)wind|ow);.}..|
|000012b0| 2f 2a 20 2d 2d 2d 2d 2d | 20 41 63 74 69 76 61 74 |/* -----| Activat|
|000012c0| 65 20 64 6f 63 75 6d 65 | 6e 74 20 77 69 6e 64 6f |e docume|nt windo|
|000012d0| 77 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |w ------|--------|
|000012e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012f0| 2d 2d 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 76 6f 69 |--------| */..voi|
|00001300| 64 20 41 63 74 69 76 61 | 74 65 44 6f 63 75 6d 65 |d Activa|teDocume|
|00001310| 6e 74 28 0d 09 72 65 67 | 69 73 74 65 72 20 44 6f |nt(..reg|ister Do|
|00001320| 63 75 6d 65 6e 74 50 65 | 65 6b 20 77 69 6e 64 6f |cumentPe|ek windo|
|00001330| 77 2c 0d 09 72 65 67 69 | 73 74 65 72 20 73 68 6f |w,..regi|ster sho|
|00001340| 72 74 20 61 63 74 69 76 | 61 74 65 29 0d 7b 0d 09 |rt activ|ate).{..|
|00001350| 48 69 6c 69 74 65 43 6f | 6e 74 72 6f 6c 28 77 69 |HiliteCo|ntrol(wi|
|00001360| 6e 64 6f 77 2d 3e 76 73 | 2c 20 61 63 74 69 76 61 |ndow->vs|, activa|
|00001370| 74 65 20 3f 20 30 20 3a | 20 32 35 35 29 3b 0d 09 |te ? 0 :| 255);..|
|00001380| 49 6e 69 74 43 75 72 73 | 6f 72 28 29 3b 0d 7d 0d |InitCurs|or();.}.|
|00001390| 0d 2f 2a 20 2d 2d 2d 2d | 2d 20 47 6f 20 74 6f 20 |./* ----|- Go to |
|000013a0| 6e 65 78 74 20 6c 69 6e | 65 20 2d 2d 2d 2d 2d 2d |next lin|e ------|
|000013b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 20 2a 2f 0d 0d 73 74 |--------|- */..st|
|000013e0| 61 74 69 63 20 76 6f 69 | 64 20 4e 65 78 74 4c 69 |atic voi|d NextLi|
|000013f0| 6e 65 28 72 65 67 69 73 | 74 65 72 20 44 6f 63 75 |ne(regis|ter Docu|
|00001400| 6d 65 6e 74 50 65 65 6b | 20 77 69 6e 64 6f 77 29 |mentPeek| window)|
|00001410| 0d 7b 0d 09 52 65 63 74 | 20 72 3b 0d 0d 09 41 64 |.{..Rect| r;...Ad|
|00001420| 64 4e 65 77 43 68 61 72 | 61 63 74 65 72 28 26 77 |dNewChar|acter(&w|
|00001430| 69 6e 64 6f 77 2d 3e 62 | 75 66 2c 20 27 5c 30 31 |indow->b|uf, '\01|
|00001440| 35 27 29 3b 0d 09 42 79 | 74 65 43 61 70 74 75 72 |5');..By|teCaptur|
|00001450| 65 28 27 5c 30 31 35 27 | 29 3b 0d 09 41 64 6a 75 |e('\015'|);..Adju|
|00001460| 73 74 53 63 72 6f 6c 6c | 42 61 72 28 77 69 6e 64 |stScroll|Bar(wind|
|00001470| 6f 77 29 3b 09 2f 2a 20 | 4e 65 77 20 76 61 6c 75 |ow);./* |New valu|
|00001480| 65 2f 6d 61 78 20 66 6f | 72 20 73 63 72 6f 6c 6c |e/max fo|r scroll|
|00001490| 20 62 61 72 20 2a 2f 0d | 09 72 20 3d 20 77 69 6e | bar */.|.r = win|
|000014a0| 64 6f 77 2d 3e 72 65 63 | 74 3b 0d 09 77 69 6e 64 |dow->rec|t;..wind|
|000014b0| 6f 77 2d 3e 63 75 72 73 | 6f 72 2e 68 20 3d 20 77 |ow->curs|or.h = w|
|000014c0| 69 6e 64 6f 77 2d 3e 63 | 75 72 73 6f 72 30 2e 68 |indow->c|ursor0.h|
|000014d0| 3b 0d 09 69 66 20 28 77 | 69 6e 64 6f 77 2d 3e 63 |;..if (w|indow->c|
|000014e0| 75 72 73 6f 72 2e 76 20 | 3c 20 28 72 2e 62 6f 74 |ursor.v |< (r.bot|
|000014f0| 74 6f 6d 20 2d 20 77 69 | 6e 64 6f 77 2d 3e 68 65 |tom - wi|ndow->he|
|00001500| 69 67 68 74 29 29 20 7b | 0d 09 09 77 69 6e 64 6f |ight)) {|...windo|
|00001510| 77 2d 3e 63 75 72 73 6f | 72 2e 76 20 2b 3d 20 77 |w->curso|r.v += w|
|00001520| 69 6e 64 6f 77 2d 3e 68 | 65 69 67 68 74 3b 0d 09 |indow->h|eight;..|
|00001530| 7d 20 65 6c 73 65 20 7b | 09 09 09 09 09 2f 2a 20 |} else {|...../* |
|00001540| 57 65 20 6d 75 73 74 20 | 73 63 72 6f 6c 6c 20 2a |We must |scroll *|
|00001550| 2f 0d 09 0d 09 09 2f 2a | 20 49 66 20 77 69 6e 64 |/...../*| If wind|
|00001560| 6f 77 2d 3e 72 65 63 74 | 20 69 73 20 65 6e 74 69 |ow->rect| is enti|
|00001570| 72 65 6c 79 20 76 69 73 | 69 62 6c 65 2c 20 75 73 |rely vis|ible, us|
|00001580| 65 20 53 63 72 6f 6c 6c | 52 65 63 74 28 29 2c 0d |e Scroll|Rect(),.|
|00001590| 09 09 77 68 69 63 68 20 | 69 73 20 6d 75 63 68 20 |..which |is much |
|000015a0| 66 61 73 74 65 72 20 74 | 68 61 6e 20 74 68 65 20 |faster t|han the |
|000015b0| 72 65 64 72 61 77 20 66 | 75 6e 63 74 69 6f 6e 2e |redraw f|unction.|
|000015c0| 20 2a 2f 0d 20 09 09 69 | 66 20 28 56 69 73 69 62 | */. ..i|f (Visib|
|000015d0| 6c 65 28 77 69 6e 64 6f | 77 29 29 20 7b 0d 09 09 |le(windo|w)) {...|
|000015e0| 09 72 65 67 69 73 74 65 | 72 20 52 67 6e 48 61 6e |.registe|r RgnHan|
|000015f0| 64 6c 65 20 72 67 6e 20 | 3d 20 4e 65 77 52 67 6e |dle rgn |= NewRgn|
|00001600| 28 29 3b 0d 09 09 09 53 | 63 72 6f 6c 6c 52 65 63 |();....S|crollRec|
|00001610| 74 28 26 72 2c 20 30 2c | 20 2d 77 69 6e 64 6f 77 |t(&r, 0,| -window|
|00001620| 2d 3e 68 65 69 67 68 74 | 2c 20 72 67 6e 29 3b 0d |->height|, rgn);.|
|00001630| 09 09 09 44 69 73 70 6f | 73 65 52 67 6e 28 72 67 |...Dispo|seRgn(rg|
|00001640| 6e 29 3b 0d 09 09 7d 20 | 65 6c 73 65 0d 09 09 09 |n);...} |else....|
|00001650| 44 72 61 77 44 6f 63 75 | 6d 65 6e 74 58 28 77 69 |DrawDocu|mentX(wi|
|00001660| 6e 64 6f 77 29 3b 0d 09 | 7d 0d 09 4d 6f 76 65 54 |ndow);..|}..MoveT|
|00001670| 6f 28 77 69 6e 64 6f 77 | 2d 3e 63 75 72 73 6f 72 |o(window|->cursor|
|00001680| 2e 68 2c 20 77 69 6e 64 | 6f 77 2d 3e 63 75 72 73 |.h, wind|ow->curs|
|00001690| 6f 72 2e 76 29 3b 0d 7d | 0d 0d 2f 2a 20 2d 2d 2d |or.v);.}|../* ---|
|000016a0| 2d 2d 20 48 61 6e 64 6c | 65 20 6e 65 77 20 63 68 |-- Handl|e new ch|
|000016b0| 61 72 61 63 74 65 72 73 | 20 2d 2d 2d 2d 2d 2d 2d |aracters| -------|
|000016c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016e0| 2d 2d 20 2a 2f 0d 0d 76 | 6f 69 64 20 4e 65 77 43 |-- */..v|oid NewC|
|000016f0| 68 61 72 61 63 74 65 72 | 73 28 0d 09 72 65 67 69 |haracter|s(..regi|
|00001700| 73 74 65 72 20 42 79 74 | 65 20 2a 62 75 66 66 65 |ster Byt|e *buffe|
|00001710| 72 2c 0d 09 72 65 67 69 | 73 74 65 72 20 73 68 6f |r,..regi|ster sho|
|00001720| 72 74 20 63 6f 75 6e 74 | 2c 0d 09 72 65 67 69 73 |rt count|,..regis|
|00001730| 74 65 72 20 42 6f 6f 6c | 65 61 6e 20 61 75 74 6f |ter Bool|ean auto|
|00001740| 72 78 29 0d 7b 0d 09 72 | 65 67 69 73 74 65 72 20 |rx).{..r|egister |
|00001750| 44 6f 63 75 6d 65 6e 74 | 50 65 65 6b 20 77 69 6e |Document|Peek win|
|00001760| 64 6f 77 20 3d 20 54 65 | 72 6d 69 6e 61 6c 57 69 |dow = Te|rminalWi|
|00001770| 6e 64 6f 77 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |ndow;..r|egister |
|00001780| 42 79 74 65 20 2a 73 74 | 61 72 74 20 3d 20 62 75 |Byte *st|art = bu|
|00001790| 66 66 65 72 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |ffer;..r|egister |
|000017a0| 42 79 74 65 20 62 3b 0d | 09 72 65 67 69 73 74 65 |Byte b;.|.registe|
|000017b0| 72 20 73 68 6f 72 74 20 | 6e 3b 0d 09 73 68 6f 72 |r short |n;..shor|
|000017c0| 74 20 77 69 64 74 68 3b | 0d 09 52 65 63 74 20 72 |t width;|..Rect r|
|000017d0| 3b 0d 0d 09 53 65 74 50 | 6f 72 74 28 28 47 72 61 |;...SetP|ort((Gra|
|000017e0| 66 50 74 72 29 77 69 6e | 64 6f 77 29 3b 0d 09 72 |fPtr)win|dow);..r|
|000017f0| 20 3d 20 77 69 6e 64 6f | 77 2d 3e 72 65 63 74 3b | = windo|w->rect;|
|00001800| 0d 09 77 69 64 74 68 20 | 3d 20 77 69 6e 64 6f 77 |..width |= window|
|00001810| 2d 3e 63 68 61 72 61 63 | 74 65 72 2e 72 69 67 68 |->charac|ter.righ|
|00001820| 74 20 2d 20 77 69 6e 64 | 6f 77 2d 3e 63 68 61 72 |t - wind|ow->char|
|00001830| 61 63 74 65 72 2e 6c 65 | 66 74 3b 0d 0d 09 2f 2a |acter.le|ft;.../*|
|00001840| 20 53 63 72 6f 6c 6c 20 | 74 6f 20 65 6e 64 20 6f | Scroll |to end o|
|00001850| 66 20 64 6f 63 75 6d 65 | 6e 74 20 69 66 20 6e 65 |f docume|nt if ne|
|00001860| 63 65 73 73 61 72 79 20 | 2a 2f 0d 0d 09 7b 0d 09 |cessary |*/...{..|
|00001870| 09 43 6f 6e 74 72 6f 6c | 50 74 72 20 63 20 3d 20 |.Control|Ptr c = |
|00001880| 2a 28 77 69 6e 64 6f 77 | 2d 3e 76 73 29 3b 0d 0d |*(window|->vs);..|
|00001890| 09 09 69 66 20 28 6e 20 | 3d 20 63 2d 3e 63 6f 6e |..if (n |= c->con|
|000018a0| 74 72 6c 56 61 6c 75 65 | 20 2d 20 63 2d 3e 63 6f |trlValue| - c->co|
|000018b0| 6e 74 72 6c 4d 61 78 29 | 20 7b 0d 09 09 09 41 64 |ntrlMax)| {....Ad|
|000018c0| 6a 75 73 74 53 63 72 6f | 6c 6c 42 61 72 28 77 69 |justScro|llBar(wi|
|000018d0| 6e 64 6f 77 29 3b 0d 09 | 09 09 53 63 72 6f 6c 6c |ndow);..|..Scroll|
|000018e0| 28 77 69 6e 64 6f 77 2c | 20 6e 29 3b 0d 09 09 7d |(window,| n);...}|
|000018f0| 0d 09 7d 0d 0d 09 2f 2a | 20 45 72 61 73 65 20 63 |..}.../*| Erase c|
|00001900| 75 72 73 6f 72 20 61 6e | 64 20 73 65 74 20 70 65 |ursor an|d set pe|
|00001910| 6e 20 70 6f 73 69 74 69 | 6f 6e 20 2a 2f 0d 0d 09 |n positi|on */...|
|00001920| 4d 6f 76 65 54 6f 28 77 | 69 6e 64 6f 77 2d 3e 63 |MoveTo(w|indow->c|
|00001930| 75 72 73 6f 72 2e 68 2c | 20 77 69 6e 64 6f 77 2d |ursor.h,| window-|
|00001940| 3e 63 75 72 73 6f 72 2e | 76 29 3b 0d 09 45 72 61 |>cursor.|v);..Era|
|00001950| 73 65 43 68 61 72 61 63 | 74 65 72 28 77 69 6e 64 |seCharac|ter(wind|
|00001960| 6f 77 2d 3e 63 75 72 73 | 6f 72 2c 20 77 69 6e 64 |ow->curs|or, wind|
|00001970| 6f 77 2d 3e 63 68 61 72 | 61 63 74 65 72 29 3b 0d |ow->char|acter);.|
|00001980| 0d 09 2f 2a 20 43 68 65 | 63 6b 20 61 6c 6c 20 63 |../* Che|ck all c|
|00001990| 68 61 72 61 63 74 65 72 | 73 20 2a 2f 0d 0d 09 77 |haracter|s */...w|
|000019a0| 68 69 6c 65 20 28 63 6f | 75 6e 74 2d 2d 29 20 7b |hile (co|unt--) {|
|000019b0| 0d 09 09 62 20 3d 20 2a | 62 75 66 66 65 72 2b 2b |...b = *|buffer++|
|000019c0| 3b 0d 0d 09 09 2f 2a 20 | 43 68 65 63 6b 20 66 6f |;..../* |Check fo|
|000019d0| 72 20 43 6f 6d 70 75 53 | 65 72 76 65 2d 42 20 2a |r CompuS|erve-B *|
|000019e0| 2f 0d 0d 09 09 69 66 20 | 28 62 20 3d 3d 20 45 4e |/....if |(b == EN|
|000019f0| 51 20 26 26 20 61 75 74 | 6f 72 78 20 26 26 20 53 |Q && aut|orx && S|
|00001a00| 65 74 74 69 6e 67 73 2e | 70 72 6f 74 6f 63 6f 6c |ettings.|protocol|
|00001a10| 20 3d 3d 20 31 20 26 26 | 20 21 54 72 61 6e 73 66 | == 1 &&| !Transf|
|00001a20| 65 72 20 26 26 0d 09 09 | 09 09 21 53 65 6e 64 69 |er &&...|..!Sendi|
|00001a30| 6e 67 29 20 7b 0d 09 09 | 09 69 66 20 28 28 6e 20 |ng) {...|.if ((n |
|00001a40| 3d 20 62 75 66 66 65 72 | 20 2d 20 73 74 61 72 74 |= buffer| - start|
|00001a50| 20 2d 20 31 29 20 3e 20 | 30 29 20 7b 0d 09 09 09 | - 1) > |0) {....|
|00001a60| 09 44 72 61 77 54 65 78 | 74 28 73 74 61 72 74 2c |.DrawTex|t(start,|
|00001a70| 20 30 2c 20 6e 29 3b 0d | 09 09 09 09 47 65 74 50 | 0, n);.|....GetP|
|00001a80| 65 6e 28 26 77 69 6e 64 | 6f 77 2d 3e 63 75 72 73 |en(&wind|ow->curs|
|00001a90| 6f 72 29 3b 0d 09 09 09 | 7d 0d 09 09 09 73 74 61 |or);....|}....sta|
|00001aa0| 72 74 20 3d 20 62 75 66 | 66 65 72 3b 0d 09 09 09 |rt = buf|fer;....|
|00001ab0| 43 69 73 42 28 29 3b 0d | 09 09 09 55 6e 6c 6f 61 |CisB();.|...Unloa|
|00001ac0| 64 53 65 67 28 43 69 73 | 42 29 3b 0d 09 09 09 2f |dSeg(Cis|B);..../|
|00001ad0| 2a 20 4d 65 61 6e 77 68 | 69 6c 65 20 70 72 6f 67 |* Meanwh|ile prog|
|00001ae0| 72 65 73 73 20 77 69 6e | 64 6f 77 20 77 61 73 20 |ress win|dow was |
|00001af0| 75 70 20 2a 2f 0d 09 09 | 09 53 65 74 50 6f 72 74 |up */...|.SetPort|
|00001b00| 28 28 47 72 61 66 50 74 | 72 29 77 69 6e 64 6f 77 |((GrafPt|r)window|
|00001b10| 29 3b 0d 09 09 09 4d 6f | 76 65 54 6f 28 77 69 6e |);....Mo|veTo(win|
|00001b20| 64 6f 77 2d 3e 63 75 72 | 73 6f 72 2e 68 2c 20 77 |dow->cur|sor.h, w|
|00001b30| 69 6e 64 6f 77 2d 3e 63 | 75 72 73 6f 72 2e 76 29 |indow->c|ursor.v)|
|00001b40| 3b 0d 09 09 09 63 6f 6e | 74 69 6e 75 65 3b 0d 09 |;....con|tinue;..|
|00001b50| 09 7d 0d 0d 09 09 2f 2a | 20 43 68 65 63 6b 20 66 |.}..../*| Check f|
|00001b60| 6f 72 20 5a 4d 6f 64 65 | 6d 20 61 75 74 6f 72 65 |or ZMode|m autore|
|00001b70| 63 65 69 76 65 20 73 74 | 72 69 6e 67 20 2a 2f 0d |ceive st|ring */.|
|00001b80| 0d 09 09 69 66 20 28 53 | 65 74 74 69 6e 67 73 2e |...if (S|ettings.|
|00001b90| 5a 41 75 74 6f 52 65 63 | 65 69 76 65 20 26 26 20 |ZAutoRec|eive && |
|00001ba0| 61 75 74 6f 72 78 20 26 | 26 20 21 54 72 61 6e 73 |autorx &|& !Trans|
|00001bb0| 66 65 72 20 26 26 20 21 | 53 65 6e 64 69 6e 67 29 |fer && !|Sending)|
|00001bc0| 20 7b 0d 09 09 09 6d 65 | 6d 63 70 79 28 5a 4c 61 | {....me|mcpy(ZLa|
|00001bd0| 73 74 52 78 2c 20 5a 4c | 61 73 74 52 78 20 2b 20 |stRx, ZL|astRx + |
|00001be0| 31 2c 20 5a 41 55 54 4f | 52 58 20 2d 20 31 29 3b |1, ZAUTO|RX - 1);|
|00001bf0| 0d 09 09 09 5a 4c 61 73 | 74 52 78 5b 5a 41 55 54 |....ZLas|tRx[ZAUT|
|00001c00| 4f 52 58 20 2d 20 31 5d | 20 3d 20 62 3b 0d 09 09 |ORX - 1]| = b;...|
|00001c10| 09 69 66 20 28 21 73 74 | 72 63 6d 70 28 28 63 68 |.if (!st|rcmp((ch|
|00001c20| 61 72 20 2a 29 5a 4c 61 | 73 74 52 78 2c 20 28 63 |ar *)ZLa|stRx, (c|
|00001c30| 68 61 72 20 2a 29 5a 41 | 75 74 6f 52 65 63 65 69 |har *)ZA|utoRecei|
|00001c40| 76 65 53 74 72 69 6e 67 | 29 29 20 7b 0d 09 09 09 |veString|)) {....|
|00001c50| 09 69 66 20 28 28 6e 20 | 3d 20 62 75 66 66 65 72 |.if ((n |= buffer|
|00001c60| 20 2d 20 73 74 61 72 74 | 20 2d 20 31 29 20 3e 20 | - start| - 1) > |
|00001c70| 30 29 20 7b 0d 09 09 09 | 09 09 44 72 61 77 54 65 |0) {....|..DrawTe|
|00001c80| 78 74 28 73 74 61 72 74 | 2c 20 30 2c 20 6e 29 3b |xt(start|, 0, n);|
|00001c90| 0d 09 09 09 09 09 47 65 | 74 50 65 6e 28 26 77 69 |......Ge|tPen(&wi|
|00001ca0| 6e 64 6f 77 2d 3e 63 75 | 72 73 6f 72 29 3b 0d 09 |ndow->cu|rsor);..|
|00001cb0| 09 09 09 7d 0d 09 09 09 | 09 73 74 61 72 74 20 3d |...}....|.start =|
|00001cc0| 20 62 75 66 66 65 72 3b | 0d 09 09 09 09 5a 52 65 | buffer;|.....ZRe|
|00001cd0| 63 65 69 76 65 28 29 3b | 0d 09 09 09 09 55 6e 6c |ceive();|.....Unl|
|00001ce0| 6f 61 64 53 65 67 28 5a | 52 65 63 65 69 76 65 29 |oadSeg(Z|Receive)|
|00001cf0| 3b 0d 09 09 09 09 2f 2a | 20 4d 65 61 6e 77 68 69 |;...../*| Meanwhi|
|00001d00| 6c 65 20 70 72 6f 67 72 | 65 73 73 20 77 69 6e 64 |le progr|ess wind|
|00001d10| 6f 77 20 77 61 73 20 75 | 70 20 2a 2f 0d 09 09 09 |ow was u|p */....|
|00001d20| 09 53 65 74 50 6f 72 74 | 28 28 47 72 61 66 50 74 |.SetPort|((GrafPt|
|00001d30| 72 29 77 69 6e 64 6f 77 | 29 3b 0d 09 09 09 09 4d |r)window|);.....M|
|00001d40| 6f 76 65 54 6f 28 77 69 | 6e 64 6f 77 2d 3e 63 75 |oveTo(wi|ndow->cu|
|00001d50| 72 73 6f 72 2e 68 2c 20 | 77 69 6e 64 6f 77 2d 3e |rsor.h, |window->|
|00001d60| 63 75 72 73 6f 72 2e 76 | 29 3b 0d 09 09 09 09 63 |cursor.v|);.....c|
|00001d70| 6f 6e 74 69 6e 75 65 3b | 0d 09 09 09 7d 0d 09 09 |ontinue;|....}...|
|00001d80| 7d 0d 0d 09 09 2f 2a 20 | 48 61 6e 64 6c 65 20 62 |}..../* |Handle b|
|00001d90| 61 63 6b 73 70 61 63 65 | 20 63 68 61 72 61 63 74 |ackspace| charact|
|00001da0| 65 72 20 2a 2f 0d 0d 09 | 09 69 66 20 28 62 20 3d |er */...|.if (b =|
|00001db0| 3d 20 53 65 74 74 69 6e | 67 73 2e 62 61 63 6b 73 |= Settin|gs.backs|
|00001dc0| 70 61 63 65 29 20 7b 0d | 09 09 09 69 66 20 28 28 |pace) {.|...if ((|
|00001dd0| 6e 20 3d 20 62 75 66 66 | 65 72 20 2d 20 73 74 61 |n = buff|er - sta|
|00001de0| 72 74 20 2d 20 31 29 20 | 3e 20 30 29 20 7b 0d 09 |rt - 1) |> 0) {..|
|00001df0| 09 09 09 44 72 61 77 54 | 65 78 74 28 73 74 61 72 |...DrawT|ext(star|
|00001e00| 74 2c 20 30 2c 20 6e 29 | 3b 0d 09 09 09 09 47 65 |t, 0, n)|;.....Ge|
|00001e10| 74 50 65 6e 28 26 77 69 | 6e 64 6f 77 2d 3e 63 75 |tPen(&wi|ndow->cu|
|00001e20| 72 73 6f 72 29 3b 0d 09 | 09 09 7d 0d 09 09 09 73 |rsor);..|..}....s|
|00001e30| 74 61 72 74 20 3d 20 62 | 75 66 66 65 72 3b 0d 09 |tart = b|uffer;..|
|00001e40| 09 09 69 66 20 28 62 20 | 3d 20 52 65 6d 6f 76 65 |..if (b |= Remove|
|00001e50| 43 68 61 72 61 63 74 65 | 72 28 26 77 69 6e 64 6f |Characte|r(&windo|
|00001e60| 77 2d 3e 62 75 66 29 29 | 20 7b 0d 09 09 09 09 42 |w->buf))| {.....B|
|00001e70| 79 74 65 43 61 70 74 75 | 72 65 28 53 65 74 74 69 |yteCaptu|re(Setti|
|00001e80| 6e 67 73 2e 62 61 63 6b | 73 70 61 63 65 29 3b 0d |ngs.back|space);.|
|00001e90| 09 09 09 09 77 69 6e 64 | 6f 77 2d 3e 63 75 72 73 |....wind|ow->curs|
|00001ea0| 6f 72 2e 68 20 2d 3d 20 | 77 69 64 74 68 3b 09 2f |or.h -= |width;./|
|00001eb0| 2a 20 66 61 73 74 65 72 | 20 74 68 61 6e 20 43 68 |* faster| than Ch|
|00001ec0| 61 72 57 69 64 74 68 28 | 62 29 20 2a 2f 0d 09 09 |arWidth(|b) */...|
|00001ed0| 09 09 4d 6f 76 65 54 6f | 28 77 69 6e 64 6f 77 2d |..MoveTo|(window-|
|00001ee0| 3e 63 75 72 73 6f 72 2e | 68 2c 20 77 69 6e 64 6f |>cursor.|h, windo|
|00001ef0| 77 2d 3e 63 75 72 73 6f | 72 2e 76 29 3b 0d 09 09 |w->curso|r.v);...|
|00001f00| 09 09 45 72 61 73 65 43 | 68 61 72 61 63 74 65 72 |..EraseC|haracter|
|00001f10| 28 77 69 6e 64 6f 77 2d | 3e 63 75 72 73 6f 72 2c |(window-|>cursor,|
|00001f20| 20 77 69 6e 64 6f 77 2d | 3e 63 68 61 72 61 63 74 | window-|>charact|
|00001f30| 65 72 29 3b 0d 09 09 09 | 7d 0d 09 09 09 63 6f 6e |er);....|}....con|
|00001f40| 74 69 6e 75 65 3b 0d 09 | 09 7d 0d 0d 09 09 2f 2a |tinue;..|.}..../*|
|00001f50| 20 48 61 6e 64 6c 65 20 | 63 61 72 72 69 61 67 65 | Handle |carriage|
|00001f60| 20 72 65 74 75 72 6e 20 | 2a 2f 0d 0d 09 09 69 66 | return |*/....if|
|00001f70| 20 28 62 20 3d 3d 20 27 | 5c 30 31 35 27 29 20 7b | (b == '|\015') {|
|00001f80| 0d 09 09 09 69 66 20 28 | 28 6e 20 3d 20 62 75 66 |....if (|(n = buf|
|00001f90| 66 65 72 20 2d 20 73 74 | 61 72 74 20 2d 20 31 29 |fer - st|art - 1)|
|00001fa0| 20 3e 20 30 29 20 7b 0d | 09 09 09 09 44 72 61 77 | > 0) {.|....Draw|
|00001fb0| 54 65 78 74 28 73 74 61 | 72 74 2c 20 30 2c 20 6e |Text(sta|rt, 0, n|
|00001fc0| 29 3b 0d 09 09 09 09 47 | 65 74 50 65 6e 28 26 77 |);.....G|etPen(&w|
|00001fd0| 69 6e 64 6f 77 2d 3e 63 | 75 72 73 6f 72 29 3b 0d |indow->c|ursor);.|
|00001fe0| 09 09 09 7d 0d 09 09 09 | 73 74 61 72 74 20 3d 20 |...}....|start = |
|00001ff0| 62 75 66 66 65 72 3b 0d | 09 09 09 4e 65 78 74 4c |buffer;.|...NextL|
|00002000| 69 6e 65 28 77 69 6e 64 | 6f 77 29 3b 0d 09 09 09 |ine(wind|ow);....|
|00002010| 63 6f 6e 74 69 6e 75 65 | 3b 0d 09 09 7d 0d 0d 09 |continue|;...}...|
|00002020| 09 2f 2a 20 46 69 6c 74 | 65 72 20 6f 75 74 20 63 |./* Filt|er out c|
|00002030| 6f 6e 74 72 6f 6c 20 63 | 68 61 72 61 63 74 65 72 |ontrol c|haracter|
|00002040| 73 20 2a 2f 0d 0d 09 09 | 69 66 20 28 62 20 21 3d |s */....|if (b !=|
|00002050| 20 27 5c 74 27 20 26 26 | 20 28 62 20 3c 20 30 78 | '\t' &&| (b < 0x|
|00002060| 32 30 20 7c 7c 20 62 20 | 3e 20 30 78 37 45 29 29 |20 || b |> 0x7E))|
|00002070| 20 7b 0d 09 09 09 69 66 | 20 28 62 20 3d 3d 20 30 | {....if| (b == 0|
|00002080| 78 30 37 20 26 26 20 53 | 65 74 74 69 6e 67 73 2e |x07 && S|ettings.|
|00002090| 62 65 65 70 29 09 2f 2a | 20 43 68 65 63 6b 20 66 |beep)./*| Check f|
|000020a0| 6f 72 20 42 45 4c 20 2a | 2f 0d 09 09 09 09 53 79 |or BEL *|/.....Sy|
|000020b0| 73 42 65 65 70 28 31 29 | 3b 0d 09 09 09 69 66 20 |sBeep(1)|;....if |
|000020c0| 28 28 6e 20 3d 20 62 75 | 66 66 65 72 20 2d 20 73 |((n = bu|ffer - s|
|000020d0| 74 61 72 74 20 2d 20 31 | 29 20 3e 20 30 29 20 7b |tart - 1|) > 0) {|
|000020e0| 0d 09 09 09 09 44 72 61 | 77 54 65 78 74 28 73 74 |.....Dra|wText(st|
|000020f0| 61 72 74 2c 20 30 2c 20 | 6e 29 3b 0d 09 09 09 09 |art, 0, |n);.....|
|00002100| 47 65 74 50 65 6e 28 26 | 77 69 6e 64 6f 77 2d 3e |GetPen(&|window->|
|00002110| 63 75 72 73 6f 72 29 3b | 0d 09 09 09 7d 0d 09 09 |cursor);|....}...|
|00002120| 09 73 74 61 72 74 20 3d | 20 62 75 66 66 65 72 3b |.start =| buffer;|
|00002130| 0d 09 09 09 63 6f 6e 74 | 69 6e 75 65 3b 0d 09 09 |....cont|inue;...|
|00002140| 7d 0d 0d 09 09 2f 2a 20 | 48 61 6e 64 6c 65 20 70 |}..../* |Handle p|
|00002150| 72 69 6e 74 61 62 6c 65 | 20 63 68 61 72 61 63 74 |rintable| charact|
|00002160| 65 72 73 20 2a 2f 0d 0d | 09 09 69 66 20 28 77 69 |ers */..|..if (wi|
|00002170| 6e 64 6f 77 2d 3e 63 75 | 72 73 6f 72 2e 68 20 3e |ndow->cu|rsor.h >|
|00002180| 3d 20 72 2e 72 69 67 68 | 74 29 20 7b 0d 09 09 09 |= r.righ|t) {....|
|00002190| 69 66 20 28 28 6e 20 3d | 20 62 75 66 66 65 72 20 |if ((n =| buffer |
|000021a0| 2d 20 73 74 61 72 74 20 | 2d 20 31 29 20 3e 20 30 |- start |- 1) > 0|
|000021b0| 29 20 7b 0d 09 09 09 09 | 44 72 61 77 54 65 78 74 |) {.....|DrawText|
|000021c0| 28 73 74 61 72 74 2c 20 | 30 2c 20 6e 29 3b 0d 09 |(start, |0, n);..|
|000021d0| 09 09 09 47 65 74 50 65 | 6e 28 26 77 69 6e 64 6f |...GetPe|n(&windo|
|000021e0| 77 2d 3e 63 75 72 73 6f | 72 29 3b 0d 09 09 09 7d |w->curso|r);....}|
|000021f0| 0d 09 09 09 73 74 61 72 | 74 20 3d 20 62 75 66 66 |....star|t = buff|
|00002200| 65 72 20 2d 20 31 3b 0d | 09 09 09 4e 65 78 74 4c |er - 1;.|...NextL|
|00002210| 69 6e 65 28 77 69 6e 64 | 6f 77 29 3b 09 09 09 2f |ine(wind|ow);.../|
|00002220| 2a 20 49 6e 73 65 72 74 | 20 61 64 64 69 74 69 6f |* Insert| additio|
|00002230| 6e 61 6c 20 43 52 20 2a | 2f 0d 09 09 7d 20 65 6c |nal CR *|/...} el|
|00002240| 73 65 0d 09 09 09 77 69 | 6e 64 6f 77 2d 3e 63 75 |se....wi|ndow->cu|
|00002250| 72 73 6f 72 2e 68 20 2b | 3d 20 77 69 64 74 68 3b |rsor.h +|= width;|
|00002260| 09 2f 2a 20 46 61 73 74 | 65 72 20 74 68 61 6e 20 |./* Fast|er than |
|00002270| 43 68 61 72 57 69 64 74 | 68 28 62 29 20 2a 2f 0d |CharWidt|h(b) */.|
|00002280| 09 09 41 64 64 4e 65 77 | 43 68 61 72 61 63 74 65 |..AddNew|Characte|
|00002290| 72 28 26 77 69 6e 64 6f | 77 2d 3e 62 75 66 2c 20 |r(&windo|w->buf, |
|000022a0| 62 29 3b 0d 09 09 42 79 | 74 65 43 61 70 74 75 72 |b);...By|teCaptur|
|000022b0| 65 28 62 29 3b 0d 09 7d | 0d 0d 09 2f 2a 20 4d 61 |e(b);..}|.../* Ma|
|000022c0| 6b 65 20 73 75 72 65 20 | 65 76 65 72 79 74 68 69 |ke sure |everythi|
|000022d0| 6e 67 20 69 73 20 64 72 | 61 77 6e 20 2a 2f 0d 0d |ng is dr|awn */..|
|000022e0| 09 69 66 20 28 28 6e 20 | 3d 20 62 75 66 66 65 72 |.if ((n |= buffer|
|000022f0| 20 2d 20 73 74 61 72 74 | 29 20 3e 20 30 29 20 7b | - start|) > 0) {|
|00002300| 0d 09 09 44 72 61 77 54 | 65 78 74 28 73 74 61 72 |...DrawT|ext(star|
|00002310| 74 2c 20 30 2c 20 6e 29 | 3b 0d 09 09 47 65 74 50 |t, 0, n)|;...GetP|
|00002320| 65 6e 28 26 77 69 6e 64 | 6f 77 2d 3e 63 75 72 73 |en(&wind|ow->curs|
|00002330| 6f 72 29 3b 0d 09 7d 0d | 0d 09 2f 2a 20 44 72 61 |or);..}.|../* Dra|
|00002340| 77 20 63 75 72 73 6f 72 | 20 2a 2f 0d 0d 09 69 66 |w cursor| */...if|
|00002350| 20 28 77 69 6e 64 6f 77 | 2d 3e 63 75 72 73 6f 72 | (window|->cursor|
|00002360| 2e 68 20 3e 3d 20 72 2e | 72 69 67 68 74 29 0d 09 |.h >= r.|right)..|
|00002370| 09 4e 65 78 74 4c 69 6e | 65 28 77 69 6e 64 6f 77 |.NextLin|e(window|
|00002380| 29 3b 09 09 09 2f 2a 20 | 49 6e 73 65 72 74 20 61 |);.../* |Insert a|
|00002390| 64 64 69 74 69 6f 6e 61 | 6c 20 43 52 20 2a 2f 0d |dditiona|l CR */.|
|000023a0| 09 44 72 61 77 43 75 72 | 73 6f 72 28 77 69 6e 64 |.DrawCur|sor(wind|
|000023b0| 6f 77 2d 3e 63 75 72 73 | 6f 72 2c 20 77 69 6e 64 |ow->curs|or, wind|
|000023c0| 6f 77 2d 3e 63 68 61 72 | 61 63 74 65 72 29 3b 0d |ow->char|acter);.|
|000023d0| 7d 0d 0d 2f 2a 20 2d 2d | 2d 2d 2d 20 48 61 6e 64 |}../* --|--- Hand|
|000023e0| 6c 65 20 6e 65 77 20 63 | 68 61 72 61 63 74 65 72 |le new c|haracter|
|000023f0| 20 66 72 6f 6d 20 6b 65 | 79 62 6f 61 72 64 20 2d | from ke|yboard -|
|00002400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 20 2a 2f 0d 0d |--------|--- */..|
|00002420| 76 6f 69 64 20 4e 65 77 | 4b 65 79 28 72 65 67 69 |void New|Key(regi|
|00002430| 73 74 65 72 20 42 79 74 | 65 20 6b 65 79 29 0d 7b |ster Byt|e key).{|
|00002440| 0d 09 72 65 67 69 73 74 | 65 72 20 42 79 74 65 20 |..regist|er Byte |
|00002450| 62 75 66 66 65 72 5b 32 | 5d 3b 0d 09 72 65 67 69 |buffer[2|];..regi|
|00002460| 73 74 65 72 20 6c 6f 6e | 67 20 63 6f 75 6e 74 3b |ster lon|g count;|
|00002470| 0d 0d 09 69 66 20 28 6b | 65 79 20 3d 3d 20 42 53 |...if (k|ey == BS|
|00002480| 29 0d 09 09 6b 65 79 20 | 3d 20 53 65 74 74 69 6e |)...key |= Settin|
|00002490| 67 73 2e 62 61 63 6b 73 | 70 61 63 65 3b 0d 09 65 |gs.backs|pace;..e|
|000024a0| 6c 73 65 20 69 66 20 28 | 6b 65 79 20 3d 3d 20 45 |lse if (|key == E|
|000024b0| 53 43 29 0d 09 09 6b 65 | 79 20 3d 20 53 65 74 74 |SC)...ke|y = Sett|
|000024c0| 69 6e 67 73 2e 65 73 63 | 61 70 65 3b 0d 09 62 75 |ings.esc|ape;..bu|
|000024d0| 66 66 65 72 5b 30 5d 20 | 3d 20 6b 65 79 3b 0d 09 |ffer[0] |= key;..|
|000024e0| 63 6f 75 6e 74 20 3d 20 | 31 3b 0d 09 69 66 20 28 |count = |1;..if (|
|000024f0| 6b 65 79 20 3d 3d 20 27 | 5c 30 31 35 27 20 26 26 |key == '|\015' &&|
|00002500| 20 53 65 74 74 69 6e 67 | 73 2e 61 75 74 6f 4c 46 | Setting|s.autoLF|
|00002510| 29 20 7b 0d 09 09 62 75 | 66 66 65 72 5b 31 5d 20 |) {...bu|ffer[1] |
|00002520| 3d 20 27 5c 30 31 32 27 | 3b 0d 09 09 63 6f 75 6e |= '\012'|;...coun|
|00002530| 74 2b 2b 3b 0d 09 7d 0d | 09 77 68 69 6c 65 20 28 |t++;..}.|.while (|
|00002540| 42 75 73 79 29 09 2f 2a | 20 4f 74 68 65 72 20 73 |Busy)./*| Other s|
|00002550| 65 6e 64 20 69 6e 20 70 | 72 6f 67 72 65 73 73 20 |end in p|rogress |
|00002560| 2a 2f 0d 09 09 3b 0d 09 | 53 65 72 69 61 6c 53 65 |*/...;..|SerialSe|
|00002570| 6e 64 28 62 75 66 66 65 | 72 2c 20 63 6f 75 6e 74 |nd(buffe|r, count|
|00002580| 2c 20 26 42 75 73 79 29 | 3b 0d 09 69 66 20 28 53 |, &Busy)|;..if (S|
|00002590| 65 74 74 69 6e 67 73 2e | 6c 6f 63 61 6c 45 63 68 |ettings.|localEch|
|000025a0| 6f 29 0d 09 09 4e 65 77 | 43 68 61 72 61 63 74 65 |o)...New|Characte|
|000025b0| 72 73 28 62 75 66 66 65 | 72 2c 20 31 2c 20 46 41 |rs(buffe|r, 1, FA|
|000025c0| 4c 53 45 29 3b 0d 09 43 | 68 65 63 6b 45 76 65 6e |LSE);..C|heckEven|
|000025d0| 74 73 28 29 3b 0d 7d 0d | 00 00 00 00 00 00 00 00 |ts();.}.|........|
|000025e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002600| 00 00 01 00 00 00 02 14 | 00 00 01 14 00 00 00 32 |........|.......2|
|00002610| 65 20 3d 20 52 54 49 4d | 45 44 4f 55 54 3b 0d 09 |e = RTIM|EDOUT;..|
|00002620| 09 09 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 09 09 |.....bre|ak;.....|
|00002630| 0a 44 6f 63 75 6d 65 6e | 74 2e 63 01 02 00 00 00 |.Documen|t.c.....|
|00002640| 50 61 72 74 53 49 54 78 | 00 00 00 00 00 00 00 00 |PartSITx|........|
|00002650| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|00002660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002670| 00 00 a7 d3 7e 00 00 00 | 00 00 00 00 02 46 09 62 |....~...|.....F.b|
|00002680| 72 65 61 6b 3b 0d 09 09 | 09 09 09 09 09 63 61 73 |reak;...|.....cas|
|00002690| 65 20 45 4e 51 3a 0d 09 | 09 09 09 09 09 09 09 73 |e ENQ:..|.......s|
|000026a0| 74 61 74 65 20 3d 20 52 | 53 45 4e 44 41 43 4b 3b |tate = R|SENDACK;|
|000026b0| 0d 09 09 09 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |........|.break;.|
|000026c0| 09 09 09 09 09 09 7d 0d | 09 09 09 09 7d 0d 09 09 |......}.|....}...|
|000026d0| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 63 61 73 65 |..break;|....case|
|000026e0| 20 52 47 45 54 42 3a 09 | 09 2f 2a 20 57 61 69 74 | RGETB:.|./* Wait|
|000026f0| 20 66 6f 72 20 27 42 27 | 20 2a 2f 0d 09 09 09 09 | for 'B'| */.....|
|00002700| 00 00 01 10 00 0d 00 00 | 01 e6 00 00 01 f0 0b 44 |........|.......D|
|00002710| 72 61 77 43 75 72 73 6f | 72 00 00 00 02 ac 00 00 |rawCurso|r.......|
|00002720| 02 ba 0f 45 72 61 73 65 | 43 68 61 72 61 63 74 65 |...Erase|Characte|
|00002730| 72 00 00 00 03 79 00 00 | 03 80 07 56 69 73 69 62 |r....y..|...Visib|
|00002740| 6c 65 00 00 04 e7 00 00 | 04 f2 0b 44 72 61 77 4d |le......|...DrawM|
|00002750| 65 73 73 61 67 65 00 00 | 06 1e 00 00 06 29 0b 4d |essage..|.....).M|
|00002760| 61 6b 65 4d 65 73 73 61 | 67 65 00 00 07 39 00 00 |akeMessa|ge...9..|
|00002770| 07 45 0d 44 72 61 77 44 | 6f 63 75 6d 65 6e 74 00 |.E.DrawD|ocument.|
|00002780| 00 00 0c 14 00 00 0c 21 | 0d 44 72 61 77 44 6f 63 |.......!|.DrawDoc|
|00002790| 75 6d 65 6e 74 58 00 00 | 0f 2a 00 00 0f 35 0b 43 |umentX..|.*...5.C|
|000027a0| 6c 65 61 72 42 75 66 66 | 65 72 00 00 11 69 00 00 |learBuff|er...i..|
|000027b0| 11 77 0f 52 65 64 72 61 | 77 44 6f 63 75 6d 65 6e |.w.Redra|wDocumen|
|000027c0| 74 00 00 00 12 82 00 00 | 12 92 11 41 63 74 69 76 |t.......|...Activ|
|000027d0| 61 74 65 44 6f 63 75 6d | 65 6e 74 00 00 00 13 6a |ateDocum|ent....j|
|000027e0| 00 00 13 72 09 4e 65 78 | 74 4c 69 6e 65 00 00 00 |...r.Nex|tLine...|
|000027f0| 16 6c 00 00 16 79 0d 4e | 65 77 43 68 61 72 61 63 |.l...y.N|ewCharac|
|00002800| 74 65 72 73 00 00 23 a5 | 00 00 23 ab 07 4e 65 77 |ters..#.|..#..New|
|00002810| 4b 65 79 00 00 00 01 00 | 00 00 02 14 00 00 01 14 |Key.....|........|
|00002820| 00 00 00 32 00 6e 83 a8 | 07 5a 00 00 00 1c 00 32 |...2.n..|.Z.....2|
|00002830| 00 00 4d 50 53 52 00 00 | 00 0a 03 ef ff ff 00 00 |..MPSR..|........|
|00002840| 00 00 00 6e b3 f4 00 00 | 00 00 00 00 00 00 00 00 |...n....|........|
|00002850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+